home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / dcom / modems-part1 / 9729 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  3.1 KB

  1. Path: inforamp.net!ts23-06
  2. From: crs0794@inforamp.net (Geoffrey Welsh)
  3. Newsgroups: comp.dcom.modems
  4. Subject: Re: COMnRxTRIGGER
  5. Date: 30 Mar 1996 23:21:29 GMT
  6. Organization: InfoRamp Inc., Toronto, Ontario (416) 363-9100
  7. Message-ID: <4jkflp$n8n@sam.inforamp.net>
  8. References: <315B7E5F.6DCC@mnsi.net>
  9. NNTP-Posting-Host: ts23-06.tor.istar.ca
  10. X-Newsreader: News Xpress Version 1.0 Beta #4
  11.  
  12. In article <315B7E5F.6DCC@mnsi.net>, Alan Henderson <alanh@mnsi.net> wrote:
  13. >In Navas's 28800 Modem FAQ, it is suggested that the COMnRXTRIGGER 
  14. >setting should be 8 by default with a Windows for Workgroups driver. I 
  15. >tried 8 and then 4 and still got CRC errors when downloading. The errors 
  16. >stopped when I reduced the value to 1. Navas writes, "You should not go 
  17. >down to 1 unless you are really desperate." Well, I guess I am desperate. 
  18. >What I would like to know is what tradeoffs occur when the value is 1, 
  19. >rather than a higher number. Any help to understand this would be greatly 
  20. >appreciated.
  21.  
  22. UARTs with multibyte buffers have multiple advantages.  One - the reason why 
  23. most people buy 16550A UARTs - is that you can set the trigger level low so 
  24. that the UART will not lose data if the CPU can't fetch each byte before the 
  25. next arrives.
  26.  
  27. Another very good reason is to reduce the amount of time that the CPU spends 
  28. switching into and out of interrupt service mode.  Servicing an interrupt 
  29. means that the CPU must perform a lot of unproductive administrative work in 
  30. order to stop what it's doing, note what that was, go do something else, 
  31. remember where it was before, and resume.  To impose all of that overhead for 
  32. just one byte is a shame if your UART can hold up to 16; by setting the 
  33. trigger to 14 you can reduce the time the CPU spends going into and out of 
  34. interrupts to 1/14th of its previous level... leaving more time for the CPU to 
  35. do what you're waiting for it to do.
  36.  
  37. Unfortunately, in your case, even a trigger level of 4 is too high.  That is 
  38. to say, the CPU can't always read the data in the UART's buffer before twelve 
  39. more bytes arrive (0.0125 seconds at 9600 bps, 0.0021 seconds at 57600 bps), 
  40. so data is occasionally lost.  It only takes on lost data byte to trash an 
  41. entire [sub]packet).
  42.  
  43. Yes, if you can afford it, increase the trigger level in order to reduce the 
  44. overhead.  However, eliminating overruns should have a higher priority.  
  45. John's FAQ has other suggestions on eliminating overruns that might permit you 
  46. to set a hgher trigger level; I would suggest disabling multi-sector IDE 
  47. transfers (often labelled "block mode" in BIOS setup screens), turning off 
  48. write-back cache, and reducing your serial port speed to the next higher 
  49. setting from 20% over your carrier speed (e.g. 19200 for 14.4, 38400 for 28.8, 
  50. and 57600 for 33.6).
  51.  
  52. --
  53.             Geoffrey Welsh, Developer, InSystems Technologies Inc.
  54.         Temporary: crs0794@inforamp.net; At work: insystem@pathcom.com
  55.   At home: geoff@zswamp.uucp or [xenitec.on.ca|m2xenix.psg.com]!zswamp!geoff
  56.   Capitalism is a cold-hearted system which guards the interests of whoever's
  57.   at the top, yet hypocritically claims that it offers everyone a fair shot.
  58.               So is every other system ever put in place by man.
  59.  
  60.